home *** CD-ROM | disk | FTP | other *** search
- {$R-,B-}
- Unit GEOTOOL;
-
- Interface
-
- uses
- GEDDEFS;
-
- Const FastNull :Real=1E-10;
- Pi_halbe :Real=1.5707963267949;
- Pi_2 :Real=6.28318530717959;
- Ln10 :Real=2.30258509299405;
-
-
- Type Vektor =Record
- X,Y :Real;
- end;
- Gerade =Record
- Ort,Richtung: Vektor;
- end;
- Bogen =Record
- Mitte :Vektor;
- RadiusX,RadiusY :Real;
- Alpha,Beta,Theta :Real;
- end;
-
- Const Nullpunkt:Vektor =(X:0;Y:0);
-
- Type SpiegelPar =Record
- A11,A12,A21,A22,Ex,Ey :Real;
- Phiaxis :Integer;
- MirrText :Boolean;
- end;
-
- Const Yaxis :Spiegelpar =(A11: -1.0; A12: 0.0;
- A21: 0.0; A22: 1.0;
- Ex: 0.0; Ey: 0.0;
- Phiaxis :90;
- MirrText:false);
-
- Procedure Vect_Diff(Var A,B,S :Vektor);
-
- Procedure Vect_Sum(Var A,B,S :Vektor);
-
- Procedure Vect_Scale(Var V:Vektor;M:Real);
-
- Procedure Vect_Ortho(A: Vektor;Var N :Vektor);
-
- Function Bogenmass(Phi:Real):Real;
-
- Function Winkelmass(Phi:Real):Real;
-
- Function Winkel(X,Y:Real):Real;
-
- Procedure Normalize_Real(Var Phi :Real);
-
- Procedure Norm_CircPhi_Real(Var Alpha,Beta :Real);
-
- Function DeltaPhi(Phi1,Phi2:Real):Real;
-
- Procedure Normalize(Var Phi :Integer);
-
- Procedure Norm_CircPhi(Var Alpha,Beta :Integer);
-
- Function CalcPhi(X,Y :Real):Integer;
-
- Procedure Rotiere(Var X,Y:Real;Phi :Real);
-
- Function Laenge(X,Y :Real):Real;
-
- Function Distanz(X1,Y1,X2,Y2 :Real):Real;
-
- Function Distanz_VV(Var V1,V2 :Vektor):Real;
-
- Function Loese_QGl(A,B,C :Real;Var X1,X2 :Real):Integer;
- {0 =keine, 1,2 eine Reelle Lösung, -1 :Linarer Fall (A=0) }
-
- Function InArc(Alpha,Beta,Phi :Real):Boolean;
-
- Function Scalar_Prod(A,B :Vektor):Real;
-
- Procedure Tausche(Var X,Y :Real);
-
- Procedure Exchange(Var X,Y :Integer);
-
- Function Loese_LinGL2(Var A,A1,B :Vektor;Var X :Vektor):Boolean;
-
- Function HNF(Var G:Gerade):Boolean;
-
- Function Make_Gerade(X1,Y1,X2,Y2:Real;Var G:Gerade):Boolean;
-
- Function Schnitt_GG(Var G1,G2 :Gerade; Var P :Vektor):Boolean;
-
- Function Abstand(G:Gerade;P:Vektor):Real;
-
- Function Winkel_halb(G1,G2 : Gerade;P:Vektor;Var G3 :Gerade):Boolean;
-
- Function Lot(Var G1: Gerade;P:Vektor;Var PL :Vektor;Var GL :Gerade):Boolean;
-
- Function Parallele(Var G1:Gerade;Var P1:Vektor; Var GP :Gerade):Boolean;
-
- Procedure KreisKoord(Rx,Ry,Phi :Real;Var Cx,Cy :Real);
-
- Function KreisPhi(Var X,Y :Real;Var K:Bogen):Real;
-
- Function GetKreisPhi(Var P:Vektor;Var K:Bogen):Real;
-
-
- Procedure Norm_KoordSys(Var V, V0 :Vektor;Phi:Real);
-
- Procedure Regen_KoordSys(Var V, V0 :Vektor;Phi:Real);
-
- Procedure Get_P_G(Var G1 :Gerade;Var P:Vektor;Sigma :Real);
-
- Function Tangente(K1 :Bogen;P1 :Vektor;Var PB1,PB2 :Vektor):Integer;
-
- Function Polare(K1 :Bogen;P1:Vektor;Var P2,P3 :Vektor;Var G:Gerade):Boolean;
-
- Function Schnitt_KG(G1 :Gerade;K1:Bogen;
- Var P1,P2 :Vektor):Integer;
-
- Function Kreis_3P(P1,P2,P3 :Vektor;Var K:Bogen):Integer;
- { 0 :Keine Lösung 1:Bogen ; 2:Strecke);
-
- Function Kreis_SEC(P1,P2:Vektor;Var K:Bogen):Boolean;
- { Schnittpunkt P1-M mit Kreis }
-
- Procedure Koord_to_Vekt(Var K:Koord;Var V:Vektor);
-
- Procedure Vekt_to_Koord(Var V:Vektor;Var K:Koord);
-
- Function Linie_OK(Var O :Bildelement):Boolean;
-
- Function Circle_OK(Var O :Bildelement):Boolean;
-
- Function GetObj_Kreis(Var K:Bogen; Var O:Bildelement):Boolean;
-
- Function GetKreis_Obj( Var O:Bildelement;Var K:Bogen):Boolean;
-
- Function GetObj_Gerade(Var P1,P2:Vektor; Var O:Bildelement):Boolean;
-
- Function GetGerade_Obj( Var O:Bildelement;Var G:Gerade):Boolean;
-
- Procedure Mirror(Var Px,Py :integer; Spiegel :Spiegelpar);
-
- Procedure GetSpiegel(Ax,Ay,Bx,By :Integer;Lot,TextMirr:Boolean;
- Var Spiegel :Spiegelpar);
-
- Function ConvertRect(Var O:Bildelement;
- Var P1,P2,P3,P4 :Vektor;
- Var G1,G2,G3,G4 :Gerade):Boolean;
-
- Implementation
-
- (*$I GEOTOOL.INC *)
-
- begin
- Pi_halbe:=0.5*Pi;
- Pi_2:=2.0*Pi;
- LN10:=Ln(10);
- end.
-
-